--
-- Created by IntelliJ IDEA.
-- User: linux
-- Date: 2022/1/9
-- Time: 16:13
-- To change this template use File | Settings | File Templates.
--

-- 单行注释
--[[
多行注释
]]

-- 变量
-- 使用 local 关键字定义局部变量，不用则是全局变量
num = 10
local num = 20
local PI = 3.14 -- 约定，全大写当作常量
local _M        -- 约定，全局变量使用下划线开头
-- 打印 20，局部变量优先，推荐使用 local 修饰
print(num)
print(PI)
print(_M)

--[[ 变量类型
1. nil
2. boolean
3. string
    1. 不可变
    2. 全局散列表管理字符串，所以相同的字符串只存一份
    3. 相等直接比较散列值，成本低
4. number
5. function
6. table
]]
print('hello')
print("hello")
print("hello\t world")
print([[a\t\b\nbc]])
print("aaa" == "aaa")
print(true)
print(18)

-- function
local function func(...)
    local temp = { ... }
    print(type(temp))
    print(temp)
end

func(1, 2, 3, "hello", { "a", "b", "c" })

-- table
local corp = {
    3.14,
    web = "www.google.com", --索引为字符串，key = "web",
    --            value = "www.google.com"
    telephone = "12345678", --索引为字符串
    staff = { "Jack", "Scott", "Gary" }, --索引为字符串，值也是一个表
    100876, --相当于 [1] = 100876，此时索引为数字
    --      key = 1, value = 100876
    100191, --相当于 [2] = 100191，此时索引为数字
    [10] = 360, --直接把数字索引给出
    ["city"] = "Beijing" --索引为字符串
}

print(corp['web'])
print(corp.web)
print(corp[1])
print(corp[10])
print(corp['city'])
print(corp['staff'])


--[[
逻辑运算: and or not
lua 中只有 nil 和 false 为假，其他都为真
]]
print(0 and nil)